Mobile communications device platforms such as the Apple iPhone and the Google Android have several features that make them useful as location detection devices. Location detection is important in mobile applications that require knowledge of whether a user is entering or exiting defined geographic areas known as geo-fences. For example, in location-based marketing, it is desirable for merchants to know when the user of a mobile device is in the proximity (e.g., within 1000 meters) of a retail store. In such a case, the merchant may wish, for example, to send the user a message with a coupon inviting them to come into the store.
Several methodologies have been developed in the art to determine the location of a mobile communications device at a given point in time. For example, the location of a device may be determined through triangulation of the cell towers the device is communicating with and the properties of the connection the device has with each of these towers. Since mobile communications devices are constantly in communication with nearby cell towers anyway, this approach involves little incremental energy usage by the device. Unfortunately, this method often yields inaccurate results, since the density of cell towers is often insufficiently large to provide meter-level resolution of the location of a device.
Wi-Fi triangulation may also be utilized to determine the location of a mobile communications device. This approach is analogous to cell tower triangulation, but uses Wi-Fi hot spots near the device to determine its position. Wi-Fi triangulation is used, for example, in the location system developed by Skyhook Wireless (Boston, Mass.). Unfortunately, the applicability of this technique is limited, since the set of known Wi-Fi hot spots is relatively small.
The Global Positioning System (GPS) may also be used to determine the location of a mobile communications device. GPS is a constellation of satellites that broadcast location data. This data allows a mobile communications device to determine its location through a triangulation calculation. Unfortunately, GPS signals are weak, and it is typically battery intensive for a mobile communications device to receive and process GPS location updates on an ongoing basis.
Regardless of the methodology used to determine the location of a mobile communications device at a given point in time, the problem exists of how to detect when the device has entered or exited a geo-fence. Typically, this is accomplished by requiring the device to periodically report its location to a server. The business logic resident in the server then determines whether the most recent location update is of interest. This technique is used, for example, by the commercial services GOOGLE LATITUDE® (www.google.com/latitude) and Xtify (www.xtify.com).
The technique of periodically reporting the current location of a mobile communications device to a server is problematic for several reasons. First of all, it raises privacy concerns, because the technique effectively builds a trail of the location of the device over time. Moreover, periodic reporting is also inefficient since, in order for the server to react to the event of a device crossing a geo-fence in a timely manner, the device must have a high location reporting rate. However, a high reporting rate consumes energy for both the detection and the submission steps of the process.
In addition, periodic reporting suffers from accuracy issues. In particular, since the energy profile of GPS is poor, periodic reporting schemes such as those employed in GOOGLE LATITUDE® do not use GPS for location detection. Consequently, the accuracy of the detected locations is reduced.